package com.isesol.seckill.enums;

/**
 * 接口返回错误码枚举类
 * <p>
 * <p>
 * <p>
 * 定义接口对象返回错误码集合
 * <p>
 * </p>
 *
 * @author peter zhang
 * @version: ErrorCode.java, v 1.0 2015/11/19
 */
public enum ErrorCode {

    /**
     * 参数校验不通过 ，未明确具体参数的情况使用该枚举
     */
    PARAMETER_VALID_NOT_PASS("PARAMETER_VALID_NOT_PASS", "参数校验不通过"),

    /**
     * 验证答案不正确
     */
    INVALID_CAPTCHA_ANSWER("INVALID_CAPTCHA_ANSWER", "验证答案不正确"),


    /**
     * 验证码初始化异常
     */
    CAPTCHA_INIT_ERROR("CAPTCHA_INIT_ERROR", "验证码初始化异常"),


    /**
     * 秒杀失败
     */
    SEC_KILL_FAIL("SEC_KILL_FAIL", "秒杀失败"),

    /**
     * 秒杀结束
     */
    SEC_KILL_END("SEC_KILL_END", "秒杀结束"),

    /**
     * 系统错误
     */
    SYSTEM_ERROR("SYSTEM_ERROR", "系统错误");

    /**
     * 枚举代码
     */
    private final String code;

    /**
     * 枚举信息
     */
    private final String message;

    /**
     * 私有构造方法
     *
     * @param code    错误简码
     * @param message 错误信息描述
     */
    ErrorCode(String code, String message) {

        this.code = code;
        this.message = message;
    }

    /**
     * 根据代码获取枚举
     */
    public static ErrorCode getEnumByCode(String code) {

        for (ErrorCode errorCode : ErrorCode.values()) {
            if (errorCode.getCode().equalsIgnoreCase(code)) {
                return errorCode;
            }
        }
        return ErrorCode.SYSTEM_ERROR;
    }

    public String getCode() {

        return code;
    }

    public String getMessage() {

        return message;
    }

}
